using System;
namespace ch.ethz.ssh2
{
	
	/// <summary> Contains constants that can be used to specify what conditions to wait for on
	/// a SSH-2 channel (e.g., represented by a {@link Session}).
	/// 
	/// </summary>
	/// <seealso cref="Session.waitForCondition(int, long)">
	/// 
	/// </seealso>
	/// <author>  Christian Plattner
	/// </author>
	/// <version>  2.50, 03/15/10
	/// </version>
	
	public struct ChannelCondition_Fields{
		/// <summary> A timeout has occurred, none of your requested conditions is fulfilled.
		/// However, other conditions may be true - therefore, NEVER use the "=="
		/// operator to test for this (or any other) condition. Always use
		/// something like <code>((cond & ChannelCondition.CLOSED) != 0)</code>.
		/// </summary>
		public readonly static int TIMEOUT = 1;
		/// <summary> The underlying SSH-2 channel, however not necessarily the whole connection,
		/// has been closed. This implies <code>EOF</code>. Note that there may still
		/// be unread stdout or stderr data in the local window, i.e, <code>STDOUT_DATA</code>
		/// or/and <code>STDERR_DATA</code> may be set at the same time.
		/// </summary>
		public readonly static int CLOSED = 2;
		/// <summary> There is stdout data available that is ready to be consumed.</summary>
		public readonly static int STDOUT_DATA = 4;
		/// <summary> There is stderr data available that is ready to be consumed.</summary>
		public readonly static int STDERR_DATA = 8;
		/// <summary> EOF on has been reached, no more _new_ stdout or stderr data will arrive
		/// from the remote server. However, there may be unread stdout or stderr
		/// data, i.e, <code>STDOUT_DATA</code> or/and <code>STDERR_DATA</code>
		/// may be set at the same time.
		/// </summary>
		public readonly static int EOF = 16;
		/// <summary> The exit status of the remote process is available.
		/// Some servers never send the exist status, or occasionally "forget" to do so.
		/// </summary>
		public readonly static int EXIT_STATUS = 32;
		/// <summary> The exit signal of the remote process is available.</summary>
		public readonly static int EXIT_SIGNAL = 64;
	}
	public interface ChannelCondition
	{
		//UPGRADE_NOTE: Members of interface 'ChannelCondition' were extracted into structure 'ChannelCondition_Fields'. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1045'"
		
	}
}